import Request from 'luch-request'

// const appConfig = "http://10.10.1.206:8888"
const appConfig = "https://limsapi.gzhbcss.com";
// const appConfig = 'http://20.176.56.202:8888';
// const appConfig = "http://apicy.gzhbcss.com:9020/index.php"
// if (process.env.NODE_ENV === 'production') {
//   appConfig = 'https://limsapi.gzhbcss.com';  // 生产环境的请求地址
//   // appConfig = 'http://20.176.56.202:8888';  // 生产环境的请求地址
//   // appConfig = 'http://10.10.1.206:8888';  // 生产环境的请求地址
//   // appConfig = 'http://127.0.0.1:8888';  // 生产环境的请求地址
// } else if (process.env.NODE_ENV === 'development') {
//   appConfig = 'https://limsapi.gzhbcss.com';   // 开发环境的请求地址
//   // appConfig = "http://20.176.56.202:8888"
// } else {
//   appConfig = 'http://10.10.1.206:8888';  // 测试环境的请求地址
// }

const getTokenStorage = () => {
    let tokens = '';
    try {
        const { token } = uni.getStorageSync('userInfo')
		tokens = token;
    } catch (e) {
        console.log(e);
    }
    return tokens
}
const devHttp = new Request()

/* 设置全局配置 */
devHttp.setConfig((config) => {
    config.baseURL = appConfig
    config.custom.loading= true;
    config.header = {
        ...config.header,
        'Content-type':'application/json',
    }
    // console.log(config);
    return config
})

/* 请求之前拦截器。可以使用async await 做异步操作1  */
devHttp.interceptors.request.use((config) => {
    config.header = {
        ...config.header,
    }
    if (getTokenStorage()) {
        config.header['Authorization'] = getTokenStorage()
        // console.log(config.header['token'])
    }
    if (config.custom.loading) {
        uni.showLoading({
            title:'加载中'
        })
    }
    return config
}, (config) => {
    return Promise.reject(config)
})

//响应拦截器即异常处理
devHttp.interceptors.response.use(async (response) => {
    uni.hideLoading();
    // return response.data
    let code = response.data.code
	
    // 服务器响应业务状态码
	if (code >= 200 && code < 300) {
	  // 2.1 提前核心数据
	  return response.data;
	} else if (code === 4010001 || code === 4010002) {
	  // 401错误  -> 清楚用户信息，跳转到登录页
	  // const memberStore = useMemberStore()
	  // memberStore.clearProfile()
	  uni.navigateTo({ url: '/pages/login/login' })
	   return response;
	} else {
	  // 其他错误 -> 根据后端错误信息轻提示
	  uni.showToast({
		icon: 'none',
		title: response.data.msg || '程序出现异常，请联系管理员',
	  })
	  return response;
	}
}, (response) => {
    uni.hideLoading();
    // console.log("response: " + JSON.stringify(response));
    uni.showToast({
        title: '请求错误，请联系管理员',
        icon: 'none'
    })
	return response;
})
export {
    devHttp
}